package com.abl.service.system;

import com.abl.domain.dto.system.UserAddDTO;
import com.abl.domain.model.Param;
import com.abl.service.BaseService;
import com.abl.common.mybatis.model.Dnt;
import com.alibaba.fastjson2.JSONObject;

import java.util.List;

/**
 * 用户表服务
 */
public interface SysUserService extends BaseService {
    /**
     * 添加用户
     */
    boolean add(UserAddDTO param);

    /**
     * 删除
     */
    long del(Param<JSONObject> param);

    /**
     * 修改
     */
    boolean edit(Param<JSONObject> param);

    /**
     * 查询详情
     */
    Dnt info(Param<JSONObject> param);

    /**
     * 查询集合
     */
    List<Dnt> list(Param<JSONObject> param);

    //登录
    Dnt login(Param<JSONObject> param);

    boolean logout(Param<JSONObject> param);

    //获取指定用户信息
    Dnt userInfo(Object id);

    //获取指定用户信息
    List<Dnt> userInfo(List<Object> ids);

    boolean resetPassword(Param<JSONObject> param);

    Dnt refreshToken(Param<JSONObject> param);

    Dnt loginUserInfo(Param<JSONObject> param);

    List<Dnt> menu(Param<JSONObject> param);
}
